import { Tooltip } from 'antd';
import { getColorTextLoadMap } from '@/utils';
import pageStyles from '@/common/pageLayout.less';

/** columns内容渲染的方法【非字典】 */
export const ColumnsRenderFun = ({ isTooltip = true, text, textStyle = {}, event = undefined, record = {} }: Record<string, any>) => {
  return (
    <>
      <Tooltip title={isTooltip ? text : undefined}>
        <span className={pageStyles['over-flow-hidden']} onClick={event ? () => event(record) : undefined} style={textStyle}>
          {text == null || text == undefined || text == '' ? '--' : text}
        </span>
      </Tooltip>
    </>
  );
};

/** columns内容渲染的方法【字典】 */
export const DictionaryRenderFun = ({ isTooltip = false, text, textStyle = {}, event = undefined, record = {} }: Record<string, any>) => {
  const { colorText, color } = getColorTextLoadMap(text);
  return (
    <>
      <Tooltip title={isTooltip ? text : undefined}>
        <span className={pageStyles['over-flow-hidden']} onClick={event ? () => event(record) : undefined} style={{ color, ...textStyle }}>
          {colorText == null || colorText == undefined || colorText == '' ? '--' : colorText}
        </span>
      </Tooltip>
    </>
  );
};

/**判断值是否有两位小数点，没有则自动补零*/
export const formatDecimal = (val: any) => {
  // 不存在的话就返回'--'
  if (!val) return '--';
  // 将输入值转为数字，以确保处理的是数值类型
  const num = Number(val);
  // 如果转换后的数值是NaN，则直接返回原始值
  if (isNaN(num)) return '--';
  // 使用toFixed方法确保小数点后有两位，然后再转回字符串
  return num.toFixed(2) + '';
};
